package com.ruoyi.system.service;

import java.util.List;

import com.ruoyi.system.domain.DeviceTreeSelect;
import com.ruoyi.system.domain.Drtypeinfo;
import com.ruoyi.system.domain.GlobalDrTypeInfo;

/**
 * 全局设备类型Service接口
 * 
 * @author yaozh
 * @date 2024-03-16
 */
public interface IGlobalDrTypeInfoService 
{
    /**
     * 查询全局设备类型
     * 
     * @param drtypeid 全局设备类型主键
     * @return 全局设备类型
     */
    public GlobalDrTypeInfo selectGlobalDrTypeInfoByDrtypeid(Long drtypeid);

    /**
     * 查询全局设备类型列表
     * 
     * @param globalDrTypeInfo 全局设备类型
     * @return 全局设备类型集合
     */
    public List<GlobalDrTypeInfo> selectGlobalDrTypeInfoList(GlobalDrTypeInfo globalDrTypeInfo);

    List<GlobalDrTypeInfo> selectGlobalDrTypeForAll();

    /**
     * 查询设备类型树结构信息
     *
     * @param globalDrTypeInfo 设备类型信息
     * @return 设备类型树信息集合
     */
    public List<DeviceTreeSelect> selectDrTypeTreeList(GlobalDrTypeInfo globalDrTypeInfo);

    /**
     * 构建前端所需要树结构
     *
     * @param drTypeList 设备类型列表
     * @return 树结构列表
     */
    public List<GlobalDrTypeInfo> buildDeptTree(List<GlobalDrTypeInfo> drTypeList);

    /**
     * 构建前端所需要下拉树结构
     *
     * @param drTypeList 设备类型列表
     * @return 下拉树结构列表
     */
    public List<DeviceTreeSelect> buildDeptTreeSelect(List<GlobalDrTypeInfo> drTypeList);

    /**
     * 新增全局设备类型
     * 
     * @param globalDrTypeInfo 全局设备类型
     * @return 结果
     */
    public int insertGlobalDrTypeInfo(GlobalDrTypeInfo globalDrTypeInfo);

    /**
     * 修改全局设备类型
     * 
     * @param globalDrTypeInfo 全局设备类型
     * @return 结果
     */
    public int updateGlobalDrTypeInfo(GlobalDrTypeInfo globalDrTypeInfo);

    /**
     * 批量删除全局设备类型
     * 
     * @param drtypeids 需要删除的全局设备类型主键集合
     * @return 结果
     */
    public int deleteGlobalDrTypeInfoByDrtypeids(Long[] drtypeids);

    /**
     * 删除全局设备类型信息
     * 
     * @param drtypeid 全局设备类型主键
     * @return 结果
     */
    public int deleteGlobalDrTypeInfoByDrtypeid(Long drtypeid);
}
